from rest_framework import serializers

'''
1 序列化器继承谁
2 serializers.Serializer
自己写字段验证　和　　create 和　update 方法
3 serializers.ModerlSerializer
基于django 认证的模型　自动生成字段　自带create 和　update 方法


'''


# 这里我们只需要验证　uuid 不需要　create 和　update 方法
class RegisterSMSSerializer(serializers.Serializer):
    text = serializers.CharField(required=True,max_length=4,min_length=4,label='图片验证码')
    image_code_id = serializers.UUIDField(required=True,label='uuid')

    # 多个字段
    def validate(self, attrs):
        text = attrs.get('text')
        image_code_id = attrs.get('image_code_id')

        from django_redis import get_redis_connection
        redis_conn = get_redis_connection('code')
        redis_text = redis_conn.get('image_%s'%image_code_id)

        if redis_text is None:
            raise serializers.ValidationError('图片验证码过期')

        if redis_text.decode().upper() != text.upper():
            raise serializers.ValidationError('图片验证码输入错误')

        return attrs



